\begin{abstract}
Our goal in this project is to implement a machine learning system which learns to play simple 2D video games. More specifically, we focus on the problem of building a system that is capable of learning to play a variety of different games well, rather than trying to build a system that can play a single game perfectly.

We begin by encoding individual video frames using features that capture the absolute and relative positions between visible objects. This feature transform: (1) generalizes across a wide class of 2D games; and (2) produces very sparse feature vectors, which we exploit to drastically reduce computation times. To learn an appropriate gameplay policy, we experiment with model-based and model-free reinforcement learning methods. We find that the SARSA($\lambda$) algorithm for model-free reinforcement learning successfully learns to play \textsc{Pong}, \textsc{Frogger}, \textsc{Dance-Dance-Revolution}, as well as several other games of comparable complexity.
\end{abstract}
